// 内部封装AJAX请求方法
function _ajax(config: AxiosRequestConfig) {
    let { data = null, method = "GET", url = "", headers } = config;// 通过解构赋值拿到相关变量
    method = method.toUpperCase() as RequestMethod;// 转换成大写
    const xhr = new XMLHttpRequest();
    xhr.open(method, url, true);// 初始化请求参数，允许异步
    // headers的请求头有多种,注意顺序,必须放在open后面
    Object.keys(headers).forEach(key => {
        // 存在数据时,设置请求头
        if (data !== null) {
            xhr.setRequestHeader(key, headers[key]);
        }
    });
    xhr.send(data);// 发送一个http请求
}

export default _ajax;